package day7.homework;

import java.io.*;
import java.util.*;

//利用Map,初始化如下数据，完成下面的功能：
//从命令行读入一个字符串，表示一个年份，输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯，则输出：没有举办世界杯。
//在原有世界杯Map 的基础上，增加如下功能： 读入一支球队的名字，输出该球队夺冠的年份列表。
//例如，读入“巴西”，应当输出 1958 1962 1970 1994 2002 读入“荷兰”，应当输出 没有获得过世界杯
//届数        举办年份       举办地点     冠军
//第一届    1930年          乌拉圭        乌拉圭
//第二届    1934年          意大利        意大利
//第三届    1938年          法国           意大利
//第四届    1950年          巴西           乌拉圭
//第五届    1954年          瑞士           西德
//第六届    1958年          瑞典           巴西
//第七届    1962年          智利           巴西
//第八届    1966年          英格兰        英格兰
//第九届    1970年          墨西哥        巴西
//第十届    1974年          前西德        西德
//第十一届 1978年          阿根廷        阿根廷
//第十二届 1982年          西班牙        意大利
//第十三届 1986年          墨西哥        阿根廷
//第十四届 1990年          意大利        西德
//第十五届 1994年          美国           巴西
//第十六届 1998年          法国           法国
//第十七届 2002年          韩日           巴西
//第十八届 2006年          德国           意大利
//第十九届 2010年          南非           西班牙
//第二十届 2014年          巴西           德国
//二十一届 2018年          俄罗斯        法国
//二十二届 2022年          卡塔尔        阿根廷
public class WorldCup {
    static Map<String,football> map = new HashMap<>();
    static {
        input();
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.println("请输入年份:esc退出");
            String year = sc.next();
            if (year.equals("esc")) break;
            boolean champion = false;
            for (Map.Entry<String,football> m:map.entrySet()){
                if (m.getValue().year.equals(year)){
                    champion = true;
                    System.out.println("世界冠军杯冠军是:"+m.getValue().country);
                }
            }
            if (!champion) System.out.println(year+"没有举办世界杯");
            System.out.println("请输入一支足球队：");
            String footballTeam = sc.next();
            boolean getChampion = false;
            List<String> championYears = new ArrayList<>();
            for (Map.Entry<String,football> m:map.entrySet()){
                if (m.getValue().country.equals(footballTeam)){
                    getChampion = true;
                    championYears.add(m.getValue().year);
                }
            }
            Collections.sort(championYears);
            if (!getChampion) System.out.println(footballTeam+"没有获取世界冠军！");
            else System.out.println("获得世界冠军的年份："+championYears);
        }
    }
    //序列化
    public static void outPut(){
        try (FileOutputStream fos = new FileOutputStream("d://IO//a//worldCup.xxx");
             ObjectOutputStream oos = new ObjectOutputStream(fos);
        ){
            oos.writeObject(map);
        }catch (IOException e){
            e.printStackTrace();
        }
    }
    //反序列化
    public static void input(){
        try (FileInputStream fis = new FileInputStream("d://IO//a//worldCup.xxx");
             ObjectInputStream ois = new ObjectInputStream(fis);
        ){
            map = (Map<String, football>) ois.readObject();
        }catch (FileNotFoundException e){
            System.out.println("欢迎第一次使用");
        }catch (IOException e){
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
class football implements Serializable{
    String year;
    String place;
    String country;

    public football(String year, String place, String country) {
        this.year = year;
        this.place = place;
        this.country = country;
    }
}